package org.sith.taskrunner.ejb.services;

import java.util.List;
import java.util.Map;
import java.util.Set;

import org.sith.taskrunner.api.user.Role;
import org.sith.taskrunner.api.user.User;
import org.sith.taskrunner.ejb.db.entity.UserEntity;

import javax.ejb.Local;

@Local
public interface UserManagerService {

    public User getUserByNameAndPassword(String usrName, String usrPass);

    public List<String> getAllUserWithUserRole();

    public List<String> getAllUserWithAdminRole();

    public List<String> getAllUserWithTaskOwnerRole();

    public List<? extends User> getAllUsers();

    public Map<String, Role> getUsersAndRoles();

    public int getUsersCount();

    public void addUser(UserEntity user);

    public void removeUserById(Long id);

    boolean updateActiveState(Long id, boolean active);

    boolean updateRole(Long id, Role roleEntity);
}
